﻿/**
 * 下拉框。
 */
Ext.define('Happy.form.field.Combobox', {
    extend: 'Ext.form.field.ComboBox',
    alias: 'widget.happy-combobox',

    /**
     * 重写 ExtJs。
     * 
     * @protected
     */
    initComponent: function () {
        var me = this;

        me.configStore();

        me.configListeners();

        me.callParent(arguments);
    },

    /**
     * 配置仓储。
     * 
     * @protected
     */
    configStore: function () {
        var me = this;

        if (me.store) {
            return;
        }
        else {
            me.store = Ext.create(me.storeConfig.type, me.storeConfig || {});
        }
    },

    /**
     * 配置选择测试器。
     * 
     * @protected
     */
    configListeners: function () {
        var me = this;

        me.on('beforeselect', me.onComboboxBeforeSelectHandler, me);
    },

    /**
     * 配置选择测试器。
     * 
     * @private
     */
    onComboboxBeforeSelectHandler: function (combo, record) {
        var me = this;

        return me.allowSelect.apply(me, arguments);
    },

    /**
     * 是否允许选择指定的记录。
     *
     * @param {Happy.form.field.Combobox} combo
     * @param {Ext.data.Model} record
     * @param {Number} index
     * @return {Boolean}
     */
    allowSelect: function (combo, record, index) {
        return true;
    }
});